
#Introducción
<+Tristes armas
<+ si no son las palabras
<+Miguel Hernández
Desde hace más de cinco años me dedico a actualizar una página en Internet donde organizo mi contenido. Esta página al principio comenzó como un documento en HTML que iba actualizando. Desde el principio conocía la existencia de los ya clásicos CMS pero se aprendía así mucho más. 
Tras algunos años empecé a construir programas que me hicieran la actualización de la página algo más sencilla. Entre otros muchos, hubo un programa que cree conocido como Maquetador. Este programa separaba el diseño de la página del texto. Como ambos textos estaban en HTML, la modificación del cuerpo de la página se hacía tedioso. Tedi se ideó para simplificar el contenido de estos documentos, haciéndolo ligero y sencillo. 
Siempre he intentado buscar una alternativa a Latex ya que lo considero muy incómodo de escribir. Por eso Tedi pasó de un lenguaje para ser convertido a HTML a un lenguaje para convertirse a otros. El truco es que te permite usar otros lenguaje sin conocerlos y si los conoces te permite aprovechar lo que sepas. 

Tras años, Tedi ha pasado por varias revisiones desde su publicación. La primera eliminaba las etiquetas de inicio y fin y modificaba la etiqueta imagen para evitar la confusión con una anotación entre paréntesis. 
En la última modificación la metaetiqueta se divide en dos, la metaetiqueta sin salto de línea y la metaetiqueta con salto de línea. Precisión completamente innecesaria para un documento básico pero para documentos complejos que tratan del propio lenguaje es mucho más cómodo. Esto se debe a que antes para un salto de línea con una metaetiqueta tenía que tener al final de la línea un espacio en blanco. Así se incumple la propia definición de metaetiqueta. 

#Tedi
Tedi es un lenguaje de etiquetado con el que se puede crear desde unos apuntes sencillos para un momento improvisado hasta un libro con las etiquetas precisas para que cualquiera pueda hacerlo.

Etiquetas 
Las etiquetas son un conjunto de elementos que permiten identificar a un programa una región para obtener o aplicar una regla.

##Etiquetas básicas
Estas etiquetas fueron las primeras en ser implementadas y su objetivo es añadir funcionalidades que todo documento tiene para que sea más fácil de leer.

###Títulos
Los títulos ayudan a organizar mejor la información permitiendo una lectura más cómoda. La forma de utilizarlo es:
<+#Primer título
<+##Subtítulo
<+###Subsubtítulo
El límite que debería usar es cuatro para lograr la mayor compatibilidad aunque por ahora la conversión se encarga de ello (Incluso siendo posible en otros lenguajes hasta seis niveles)
Solo se convierte si se encuentra como primera etiqueta. Si en la misma línea tenemos esto: 
<+[(https://example.org/) ##Ejemplo)
Esto no sería un título mientras que la siguiente sí. 
<+##[(https://example.org) texto)
Esto producirá un título así, sin convertir el enlace.


###Enlaces
Los enlaces sirven para conectar una parte de un documento con otra o con una página web. La etiqueta se escribe de la siguiente manera: 
<+[(Enlace) Texto]
Si se quiere usar un protocolo específico como https o ftp es necesario incorporarlo al enlace. Por defecto se busca busca en el propio documento. 
Un ejemplo sería 
<+La [(https://example.org) página de ejemplo] es muy útil
<+para explicar las etiquetas.
esto se convierte a 
La [(https://example.org) página de ejemplo] es muy útil para explicar las etiquetas.

###Imágenes
A día de hoy hay gran cantidad de formatos para imágenes aunque los que recomendamos para este lenguaje son PNG, JPEG y SVG. La etiqueta es 
<+([texto alternativo a imagen] imagen.png)
Dependiendo al lenguaje que se convierta la imagen aparecerá en el sitio indicado o al principio de la página.

###Contenedores
Los contenedores son etiquetas que te permiten indicar regiones o párrafos de texto al que aplicarle modificaciones añadidas por el propio usuario. Esto suele ser muy útil para conversiones a lenguajes estilo HTML, donde los div o contenedores permiten esta opción. Su estructura es: 
<+{(Clase) Texto}
La clase de un contenedor es el identificador que debes usar para aplicarle las modificaciones al texto.

###Listas
Una lista es un conjunto de elementos con un carácter o elemento para resaltar. Las listas son todas desordenadas. No aparecerán números indicando el orden de la lista. Si se quisiera una lista ordenada, se puede forzar escribiendo o usando la de un lenguaje específico mediante código incrustado.
Se escriben de la siguiente manera: 
<+__
<+-- Primer elemento
<+-- Segundo elemento
<+,,
Se verá así: 
__
-- Primer elemento
-- Segundo elemento
,,

##Etiquetas de control
Las etiquetas de control sirven para controlar por parte del usuario la traducción del texto. Aquí reside la dificultad del lenguaje pero permite una gran flexibilidad que te ayudará a expresarte mejor. A pesar de esto, pueden provocar fallos de compatibilidad y por eso su uso debe ser reducido. Todas se comprueban para el primer carácter, si lo pones en un posición distinta no se usará.

###Código incrustado
La etiqueta para empotrar código sirve como su nombre indica, para cuando se convierta el texto, aprovecha las ventajas del lenguaje al que se convierte. Usaremos un ejemplo que solo funciona si se convierte a Latex. Usaremos la etiqueta Latex 
<+<> \LaTeX
Esto se verá así 
<> \LaTeX
Realmente no hace falta, pero queda claro que al usar esta etiqueta es casi imposible la compatibilidad entre lenguajes el cual es uno de los objetivos de Tedi. Esta etiqueta se pensó para aprovechar la potencia de Latex con las fórmulas matemáticas.

###Comentarios
Los comentarios en Tedi normalmente se utilizan para indicar derechos de autor, explicar más adecuadamente y si se incrusta código es recomendable indicar el lenguaje. Se usa así: 
<! Los comentarios son la red social del programador.
Probar que no se escribe nada es un poco absurdo pero lo considero adecuado dejarlo.
Se usa escribiendo al principio de la línea '<!'. 

###Comillas
Las comillas son una etiqueta de control un tanto especial ya que se tiene que poner una en el primer carácter y otra al final. Esta etiqueta es de control parcial. Eso significa que no convierte si aparece las etiquetas de enlaces, contenedores e imágenes. Todo lo demás se convertirá como si no estuvieran. Ejemplo: 
<+"4 + [(3 + 6) * 2]"
La conversión será así: 
"4 + [(3 + 6) * 2]"

###Metaetiqueta
La metaetiqueta es una etiqueta que se creó en la primera referencia de Tedi. Esta etiqueta te permite escribir una región de texto en la que no se comprueba ninguna etiqueta. Esta documentación para que aparezca en el documento las etiquetas escrita usa la metaetiqueta. Solo se comprueba si aparece en el primer carácter de la línea. Explicar la metaetiqueta es algo un poco raro pero su estructura es así. 
<+<Desde mi cama veo Nueva York (debería cambiar el póster).
Aunque depende del lenguaje al que se convierte más o menos será así: 
<Desde mi cama veo Nueva York (debería cambiar el póster).

Si se quiere con salto de línea al final: 
<+<+Desde mi cama veo Nueva York (debería cambiar el póster).
Como resultado da esto: 
<+Desde mi cama veo Nueva York (debería cambiar el póster).

##Etiquetas especiales
Estas etiquetas fueron añadidas más tarde para mejorar las posibilidades de Tedi. A pesar de esto, son muy básicas e importantes ya que a día de hoy todo documento tiene alguna tabla y los saltos de líneas están en todos los documentos.

###Tablas
Tedi soporta tablas de la manera más sencilla y ligera posible. 
<+Se usa el carácter | para las tablas
La forma de usarse es así: 

<+| 1 | 2 |
<+| 3 | 4 |

Aunque varía dependiendo del lenguaje se verá más o menos así: 

| 1 | 2 |
| 3 | 4 |

####Salto de línea
Se puede forzar un salto de línea si se deja un espacio en blanco al final de la línea. Algo que se lleva usando en este documento desde el principio. 
<+Una línea
<+Otra
Se verá así: 
Una línea 
Otra 

###Inserta
Esta etiqueta está pensada para combinar varios documentos. Muy útil para documentos muy grandes y se quiere separar en textos más pequeños. Solo sirve para documentos Tedi. 
Sintaxis 
< +documento.te
Justo después del símbolo '+' se debe poner el nombre, sin espacios y debe existir el documento. Dentro del documento añadido no puede haber otra etiqueta para insertar otro documento. Este documento también se analiza para saber si falla.

##Estilo recomendado
Hay un estilo que sería recomendable seguir para obtener un mejor rendimiento del programa. Cada uno puede y debe escribir como quiera, aquí lo que se dan son unas pautas simples.
__
--Usa los saltos de línea de Tedi, no incrustes ni dejes una línea en blanco.
--Limita los títulos a cuatro, no bajes más niveles.
--Si puedes usar las comillas, en vez de la metaetiqueta el resultado será más limpio.
--Evita lo máximo posible incrustar código.
--Con la metaetiqueta no superes los 80 carácteres por línea.
--Usa la extensión .te en los documentos Tedi
--Si incrustas código, añade comentarios para saber el lenguaje recomendado.
--No incluyas dentro de un documento incluido otro documento.
,,

